প্রোগ্রাম কাকে বলে? বিভিন্ন প্রজন্মের প্রোগ্রামিং ভাষা নিয়ে আলোচনা করো


প্রোগ্রাম: কম্পিউটারের মাধ্যমে কোন সমস্যা সমাধানের জন্য প্রয়োজনীয় নিদের্শমালার সমষ্টিকে প্রোগ্রাম বলা হয়।
প্রোগ্রামিং: প্রোগ্রাম রচনার পদ্ধতি বা কৌশলকে প্রোগ্রাম পদ্ধতি বা প্রোগ্রামিং বলা হয়।
প্রোগ্রামার: যে বা যিনি কমপিউটারের মাধ্যমে কোন সমস্যা সমাধানের জন্য প্রয়োজনীয় নিদের্শমালা বা প্রোগ্রাম লিখে তাকে প্রোগ্রামার বলা হয়।
প্রোগ্রামিং ভাষা: কম্পিউটারের মাধ্যমে কোন সমস্যা সমাধান তথা প্রোগ্রাম রচনার জন্য ব্যবহৃত শব্দ, বর্ণ, অংক, চিহ্ন প্রভৃতির সমন্বয়ে গঠিত রীতিনীতিকে প্রোগ্রাম ভাষা বলা হয়।

প্রোগ্রামিং ভাষার প্রকারভেদ:
1945 থেকে শুরু করে এ পর্যন্ত যত প্রোগ্রামিং ভাষা আবিষ্কৃত হয়েছে তাদেরকে বৈশিষ্ট্য অনুযায়ী পাঁচটি প্রজন্মে ভাগ করা হয়েছে।
  • প্রথম প্রজন্মের ভাষা – First Generation Language(1GL) - (1945-1949) - Machine Language (যান্ত্রিক ভাষা)
  • দ্বিতীয় প্রজন্মের ভাষা – Second Generation Language(2GL) - (1950-1959) - Assembly Language (অ্যাসেম্বলি ভাষা)
  • তৃতীয় প্রজন্মের ভাষা – Third Generation Language(3GL) - (1960-1969) - High Level Language (উচ্চস্তরের ভাষা)
  • চতুর্থ প্রজন্মের ভাষা – Fourth Generation Language(4GL) - (1970-1979) - Very High Level Language (অতি উচ্চস্তরের ভাষা)
  • পঞ্চম প্রজন্মের ভাষা – Fifth Generation Language(5GL) - (1980-present) - Natural Language (স্বাভাবিক ভাষা)
প্রোগ্রাম রচনার বৈশিষ্ট্যের ভিত্তিতে প্রোগ্রামের ভাষাসমূহকে আবার বিভিন্ন স্তরের ভাষায় বিভক্ত করা হয়ঃ
  • নিম্নস্তরের ভাষা (Low Level Language) - Machine Language, Assembly Language
  • মধ্যমস্তরের ভাষা (Mid Level Language) - C, Forth, dBase, WordStar
  • উচ্চস্তরের ভাষা (High Level Language - Fortran, Basic, Pascal, Cobol, C, C++, Visual Basic, Java, Oracle, Python
  • অতি উচ্চস্তরের ভাষা (Very High Level Language- 4GL ) - SQL, Oracle
  • স্বাভাবিক ভাষা (Natural Language) - Human Language
1GL এর বৈশিষ্ট্যঃ
মেশিন বা যান্ত্রিক ভাষা (Machine Language):
কম্পিউটারের নিজস্ব ভাষা হচ্ছে মেশিন ভাষা। এটি কম্পিউটারের মৌলিক ভাষা। এই ভাষায় শুধু মাত্র ০ এবং ১ ব্যবহার করা হয় বলে এই ভাষায় দেওয়া কোনো নির্দেশ কম্পিউটার সরাসরি বুঝতে পারে। এর সাহায্যে সরাসরি কম্পিউটারের সাথে যোগাযোগ করা যায়।
মেশিন ভাষার সুবিধা:
১। মেশিন ভাষার সবচেয়ে বড় সুবিধা হচ্ছে সরাসরি কম্পিউটারের সাথে যোগাযোগ করা যায়।
২। মেশিন ভাষায় লেখা প্রোগ্রাম নির্বাহের জন্য কোনো প্রকার অনুবাদক প্রোগ্রামের প্রয়োজন হয় না। ফলে দ্রুত কাজ করে।
৩। মেশিন ভাষায় লিখিত প্রোগ্রামে অতি অল্প মেমোরি প্রয়োজন হয়।
৪। কম্পিউটারের ভেতরের গঠন ভালোভাবে বুঝতে হলে এই ভাষা জানতে হয়।
মেশিন ভাষার অসুবিধা:
১। মেশিন ভাষায় লিখিত কোনো প্রোগ্রাম সাধারণত বোঝা যায় না।
২। শুধু ০ ও ১ ব্যবহার করা হয় বলে প্রোগ্রাম লেখা কষ্টসাধ্য।
৩। এ ভাষায় প্রোগ্রাম লিখতে প্রচুর সময় লাগে এবং ভুল হবার সম্ভাবনা খুব বেশি থাকে। ভুল হলে তা বের করা এবং ভুল-ত্রুটি দূর করা খুব কঠিন।
৪। এ ভাষার সবচেয়ে বড় অসুবিধা হচ্ছে এক ধরনের কম্পিউটারের জন্য লিখিত প্রোগ্রাম অন্য ধরনের কম্পিউটারে ব্যবহার করা যায় না। মেশিন ভাষাকে নিম্নস্তরের ভাষাও বলা হয়।
2GL এর বৈশিষ্ট্যঃ
অ্যাসেম্বলি ভাষা (Assembly Language):
অ্যাসেম্বলি ভাষাকে সাংকেতিক ভাষাও বলা হয়। দ্বিতীয় প্রজন্মের কম্পিউটারে এই ভাষা ব্যাপকভাবে প্রচলিত ছিল। অ্যাসেম্বলি ভাষার ক্ষেত্রে নির্দেশ ও ডেটার অ্যাড্রেস বাইনারি বা হেক্সা সংখ্যার সাহায্যে না দিয়ে সংকেতের সাহায্যে দেওয়া হয়। এই সংকেতকে বলে সাংকেতিক কোড (Symbolic Code) বা নেমোনিক (Mnemonic)। এটি অনেকটা সহজবোধ্য।
  • ‘যোগ’ বা Addition করাকে লেখা হয় ADD
  • ‘বিয়োগ’ বা Subtraction করাকে লেখা হয় SUB
  • ‘গুণ’ বা Multiply কে লেখা হয় MUL
  • ‘ভাগ’ বা Division কে লেখা হয় DIV ইত্যাদি।
অ্যাসেম্বলি ভাষায় প্রতিটি নির্দেশের চারটি অংশ থাকে।
  1. লেভেল
  2. অপ-কোড
  3. অপারেন্ড
  4. কমেন্ট
অ্যাসেম্বলি ভাষার সুবিধা:
১। অ্যাসেম্বলি ভাষায় প্রোগ্রাম রচনা করা যান্ত্রিক ভাষার তুলনায় অনেক সহজ।
২। প্রোগ্রাম রচনা করতে কম সময় লাগে।
৩। প্রোগ্রাম পরিবর্তন করা সহজ।
অ্যাসেম্বলি ভাষার অসুবিধা:
১। প্রোগ্রাম রচনার সময় প্রোগ্রামারকে মেশিন সম্পর্কে ধারণা থাকতে হয়।
২। এ ভাষার সবচেয়ে বড় অসুবিধা হচ্ছে এক ধরনের কম্পিউটারের জন্য লিখিত প্রোগ্রাম অন্য ধরনের কম্পিউটারে ব্যবহার করা যায় না। অ্যাসেম্বলি ভাষাকে নিম্নস্তরের ভাষাও বলা হয়।
৩। ভুল ত্রুটি বের করা কষ্টসাধ্য ব্যাপার।
৪। অনুবাদক প্রোগ্রামের প্রয়োজন হয়।
3GL এর বৈশিষ্ট্যঃ
উচ্চস্তরের ভাষা (High Level Language):
উচ্চতর ভাষার সাথে মানুষের ভাষার মিল আছে। এই প্রোগ্রাম ভাষা কম্পিউটার সংগঠনের নিয়ন্ত্রণের ঊর্ধ্বে, এই জন্য এসব ভাষাকে উচ্চতর ভাষা বলা হয়। এটি মানুষের জন্য বুঝতে পারা খুব সহজ কিন্তু কম্পিউটার সরাসরি বুঝতে পারে না বলে অনুবাদক প্রোগ্রামের সাহায্যে একে মেশিন ভাষায় রূপান্তরিত করে নিতে হয়।
উচ্চস্তরের ভাষার প্রকারভেদ:
  • সাধারণ কাজের ভাষা (General Purpose Language): যেসব ভাষা সব ধরনের কাজের উপযোগী করে তৈরি করা হয় তা সাধারণ কাজের ভাষা নামে পরিচিত। যেমন BASIC, PASCAL, C ইত্যাদি।
  • বিশেষ কাজের ভাষা (Special Purpose Language): আর যেসব ভাষা বিশেষ বিশেষ কাজের উপযোগী করে তৈরি করা হয় তা বিশেষ কাজের ভাষা নামে পরিচিত। যেমন: COBOL, ALGOL, FORTRAN ইত্যাদি।
উচ্চস্তরের ভাষার সুবিধা:
১। উচ্চস্তরের ভাষায় প্রোগ্রাম লেখা সহজ ও লিখতে সময় কম লাগে।
২। এতে ভুল হবার সম্ভবনা কম থাকে এবং প্রোগ্রামের ত্রুটি বের করে তা সংশোধন করা সহজ।
৩। এ ভাষায় প্রোগ্রাম লেখার জন্য কম্পিউটারের ভেতরের সংগঠন সম্পর্কে ধারণা থাকার প্রয়োজন নেই।
৪। এক মডেলের কম্পিউটারের জন্য লিখিত প্রোগ্রাম অন্য মডেলের কম্পিউটারে চলে ।
উচ্চস্তরের ভাষার অসুবিধা:
১। উচ্চস্তরের ভাষার অসুবিধা হচ্ছে সরাসরি কম্পিউটারের সাথে যোগাযোগ করা যায় না।
২। প্রোগ্রামকে অনুবাদ করে কম্পিউটারকে বুঝিয়ে দিতে হয়।
৩। বেশি মেমোরি প্রয়োজন হয়।
উচ্চস্তরের ভাষার ব্যবহার:
১। বড় প্রোগ্রাম তৈরির কাজে।
২। বৃহৎ ডেটা প্রসেসিং এর কাজে ব্যবহৃত প্রোগ্রাম তৈরি করতে।
৩। যেসব ক্ষেত্রে প্রচুর মেমরির প্রয়োজন সেসব ক্ষেত্রের সফটওয়্যার তৈরির কাজে।
৪। জটিল গাণিতিক নিকাশে সফটওয়্যার তৈরির কাজে।
৫। এ্যাপ্লিকেশন প্যাকেজ সফটওয়্যার তৈরির কাজে।
৬। বিভিন্ন ধরনের অটোমেটিক প্রসেস কন্ট্রোলের কাজে।
জনপ্রিয় কিছু উচ্চস্তরের প্রোগ্রামিং ভাষার পরিচিতিঃ
  • সি(C): ১৯৭২ সালে এই ভাষার প্রথম রিলিজ হয়। ডেনিশ রিচি (Dennis M. Ritchie) বেল ল্যাবরেটরিতে UNIX অপারেটিং সিস্টেম ডেভেলোপ করার জন্য ‘সি’ প্রোগ্রামিং ভাষাটি তৈরি করেন।
  • সি++(C++): ১৯৮৫ সালে Bjarne Stroustrup বেল ল্যাবরেটরিতে C ভাষার বৈশিষ্ট্যের সাথে অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর বৈশিষ্ট্য যুক্ত করে নতুন এক প্রোগ্রামিং ভাষা তৈরি করেন যা C++ নামে পরিচিত।
  • ভিজুয়্যাল বেসিক(Visual BASIC): ১৯৯১ সালে এই ভাষার প্রথম রিলিজ হয়। মাইক্রোসফ্ট কোম্পানি এই প্রোগ্রামিং ভাষা এবং পরিবেশ ডেভেলোপ করে। এই ভাষার জনক Alan Cooper.
  • জাভা(Java): জাভা প্রোগ্রামিং ভাষাটি মূলত সান মাইক্রোসিস্টেম কোম্পানি ডেভেলোপ করেন যা James Gosling শুরু করেছিলেন। এই জন্য James Gosling কে জাভা প্রোগ্রামিং ভাষার জনক বলা হয়।
  • পাইথন(Python): ১৯৯০ সালে Guido Van Rossum পাইথন প্রোগ্রামিং ভাষা ডিজাইন করেছিলেন এবং পাইথন সফটওয়্যার ফাউন্ডেশন দ্বারা ডেভেলোপ করা হয়েছিল।
  • অ্যালগল(ALGOL): ১৯৫৮ সালে এই ভাষার প্রথম রিলিজ হয়। এর পূর্ণনাম Algorithmic Language। অ্যালগোরিদম প্রকাশের জন্য এবং গণনা করার জন্য ১৯৫৮-৬০ এর সময় কার্নেগি মেলন বিশ্ববিদ্যালয়ের অ্যালান জে পেরিলিসের নেতৃত্বে অ্যাসোসিয়েশন অফ কম্পিউটিং মেশিনারি (এসিএম) এর একটি আন্তর্জাতিক কমিটি এই ভাষা ডিজাইন করেছিলো।
  • ফোরট্রান(FORTRAN): ১৯৫৭ সালে এই ভাষার প্রথম রিলিজ হয়। Formula Translation থেকে Fortran এর উৎপত্তি যা উচ্চস্তর প্রোগ্রামিং ভাষাগুলোর মধ্যে সবচেয়ে আদিমতম ভাষা।
4GL এর বৈশিষ্ট্যঃ
অতি উচ্চস্তরের ভাষা (Very High Level Language):
4GL বলতে 4th Generation Language বা চতুর্থ প্রজন্মের ভাষা বুঝায়। 4GL এর সাহায্যে সহজেই অ্যাপ্লিকেশন তৈরি করা যায় বলে একে Rapid Application Development (RAD) টুলও বলা হয়। চতুর্থ প্রজন্মের ভাষা হলো ডেটাবেজ সংক্রান্ত ভাষা। অর্থাৎ এই প্রজন্মের ভাষার সাহায্যে ডেটাবেজ তৈরি, আপডেট, ডিলেট সহ ডেটাবেজ সম্পর্কিত সকল কাজ সম্পাদন করা যায়। এই প্রজন্মের ভাষার উদাহরণ হল Perl, Python, Ruby, SQL, MatLab (Matrix Laboratory)  ইত্যাদি।
5GL এর বৈশিষ্ট্যঃ
Natural Language (স্বাভাবিক ভাষা):
পঞ্চম প্রজন্মের ভাষাকে স্বাভাবিক ভাষাও (Natural Language) বলা হয়। Artificial Intelligence বা কৃত্রিম বুদ্ধিমত্তা নির্ভর যন্ত্র তৈরিতে বা গবেষণায় এই প্রজন্মের ভাষা ব্যবহৃত হয়। এই প্রজন্মের ভাষা ব্যবহার করে মানুষ যন্ত্রকে মৌখিক নির্দেশ দিতে পারে।